﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

using Interface;
using Model;
using System.Data.SqlClient;
using System.Data;


namespace controller
{
    public class DanrenSystem
    {

        /***** Attributter ****/

        private DBfacade dbfacaden;
        private MedarbejderColl medarbejderColl;
        private KundeColl kundeColl;



        /****** Sessions Variabler **********/
    
      
        //private Kunde aktuelKunde;
        //private KontaktInfo aktuelKontaktInfo;
       private Medarbejder aktuelMedarbejder;





        /***** Contructor ********/
        public DanrenSystem()
        {
            try
            {
                dbfacaden = new DBfacade(this);
                medarbejderColl = new MedarbejderColl(dbfacaden.DBLoadMedarbejderColl());
                kundeColl = new KundeColl();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }


        }


        /****** Metoder ******/
        public void UpdateMedarbejder(int medarbejderId,string medarbejderNavn, int cprNr, byte[] billede, bool aktiv, DateTime ansættelsesDato, int ansættelsesTimer, string bemærkninger)
        {
            dbfacaden.UpdateMedarbejder(medarbejderId, medarbejderNavn, cprNr, billede, aktiv, ansættelsesDato, ansættelsesTimer, bemærkninger);
            medarbejderColl.UpdateMedarbejdeliste(medarbejderId, medarbejderNavn, cprNr, billede, aktiv, ansættelsesDato, ansættelsesTimer, bemærkninger);
            medarbejderColl.ReadMedarbejder(medarbejderId);
            aktuelMedarbejder.MedarbejderId = medarbejderId;
            aktuelMedarbejder.MedarbejderNavn = medarbejderNavn;
            aktuelMedarbejder.CprNr = cprNr;
            aktuelMedarbejder.Billede = billede;
            aktuelMedarbejder.Aktiv = aktiv;
            aktuelMedarbejder.AnsætelsesDato = ansættelsesDato;
            aktuelMedarbejder.AnsættelsesTimer = ansættelsesTimer;
            aktuelMedarbejder.Bemærkninger = bemærkninger;
            
        }


        public void CreateMedarbejder(string medarbejderNavn, int cprNr, byte[] billede, bool aktiv, DateTime ansættelsesDato, int ansættelsesTimer, string bemærkninger)
        {

            try
            {
                int medarbejderId = dbfacaden.CreateMedarbejder(medarbejderNavn, cprNr, billede, aktiv, ansættelsesDato, ansættelsesTimer, bemærkninger);
                medarbejderColl.CreateMedarbejder(medarbejderId, medarbejderNavn, cprNr, billede, aktiv, ansættelsesDato, ansættelsesTimer, bemærkninger);
            }
            catch(Exception e)
            {
                throw e;
            }

            

        }
        
        
        public List<IMedarbejder> GetImedarbejder()
        {
            return medarbejderColl.getImedarbejder().Cast<IMedarbejder>().ToList();
        }

    }
}

        







    
    
    


